//package offer;
//
//import java.util.Deque;
//import java.util.LinkedList;
//
//public class Class239 {
//
//    public int[] maxSlidingWindow(int[] nums, int k) {
////        if(nums.length == 0 || k == 0) return new int[0];
////        Deque<Integer> deque = new LinkedList<>();
////        int[] res = new int[nums.length - k + 1];
////
////        for(int i = 0; i < k; i++) { // 未形成窗口
////            while(!deque.isEmpty() && deque.peekLast() < nums[i])
////                deque.removeLast();
////            deque.addLast(nums[i]);
////        }
////
////        res[0] = deque.peekFirst();
////
////        for(int i = k; i < nums.length; i++) { // 形成窗口后
////            if(deque.peekFirst() == nums[i - k])
////                deque.removeFirst();
////            while(!deque.isEmpty() && deque.peekLast() < nums[i])
////                deque.removeLast();
////            deque.addLast(nums[i]);
////            res[i - k + 1] = deque.peekFirst();
////        }
////        return res;
//
//
//        if (nums.length==0||k==0){
//            return  new int[0];
//        }
//
//        Deque<Integer>  deque = new LinkedList<>();
//
//        int[] res = new int[nums.length - k + 1];
//
//        //TODO:2023/8/14 deque 需要保证从左到右为是一个非严格单调递减
//         //TODO:2023/8/14     队头为当前窗口的最大数值
//        for (int i = 0; i < k; i++) {
//            while (!deque.isEmpty()&&nums[i]>deque.peekLast()){
//                deque.removeLast();
//            }
//            deque.addLast(nums[i]);
//        }
//        res[0]=deque.peekFirst();
//
//        //TODO:2023/8/14 deque 进入一个数字  res对应位置得出一个数值
//        for (int i = k; i < nums.length-1 ; i++) {
//            if (nums[i-k]==deque.peekFirst()){
//                deque.removeFirst();
//            }
//            while (!deque.isEmpty()&&nums[i]>deque.peekLast()){
//                deque.removeLast();
//            }
//            deque.addLast(nums[i]);
//            res[i - k + 1] = deque.peekFirst();
//
//        }
//
//
//    }
//
//    public static void main(String[] args) {
//         int[] arr={1,3,-1,-3,5,3,6,7};
//        Class239 class239 = new Class239();
//        int[] ints = class239.maxSlidingWindow(arr, 3);
//        for (int a: ints
//             ) {
//            System.out.println(a);
//
//        }
//    }
//
//
//}
